/*************************************************************************
 *                                                                       *
 * This file is part of the FreeMAPs distribution.  For full copyright   *
 * information, see COPYRIGHT and COPYING.LESSER.                        *
 *                                                                       *
 * Author:           sqbang                                              *
 * Email:            sqbang@ustc.edu                                     *
 * Date:             2011.09.14                                          *
 *                                                                       *
 *************************************************************************/

#ifndef FreeMAPs_include_COMMON_enum_BoundaryConditionType_h
#define FreeMAPs_include_COMMON_enum_BoundaryConditionType_h

#include "FreeMAPsConfig.h"

namespace FreeMAPs
{

enum class BoundaryConditionType
{
    DIRICHLET = 0,    ///< Dirichlet boundary condition of \f$ f|_{boundary} = const \f$
    HEAT_SOURCE,      //in act_range is region
    NEUMANN,          ///< Neumann boundary condition of \f$ k\cdot \nabla f = flux \f$
    ROBIN,            ///< Robin boundary condition of \f$ k\cdot \nabla f + h\cdot f = h_0 \cdot f_0 \f$
    PRESSURE,         ///< used in stress or fluid dynamics, some special kind of NEUMANN boundary condition.
    DISTRIBUTED_LOAD, ///< used in stress, some special kind of NEUMANN boundary condition
    COMPENSATION, ///used in delete death elem
    THERMAL_STRESS, ///used in stress, some special kind of source boundary condition
    INVALID_VALUE
};

}

#include "COMMON/enum/BoundaryConditionType.inl"

#endif
